// pages/home-video/index.js
import {
  getTopMV
} from '../../service/api_video'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    topMVs: [],
    hasMore: true
  },

  /**
   * 生命周期函数--监听页面加载
   * async await
   */
  onLoad: function (options) {
    try {
      this.getTopMVData(0)
    } catch (error) {
      console.log(error);
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.getTopMVData(0)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: async function () {
    this.getTopMVData(this.data.topMVs.length)
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  // 封装网络请求的方法
  async getTopMVData(offset) {
    // 判断是否可以请求数据
    if (!this.data.hasMore && offset!== 0) return

    // 展示动画
    wx.showNavigationBarLoading()

    // 真正请求数据
    const res = await getTopMV(offset)
    let newData = this.data.topMVs
    if (offset === 0) {
      newData = res.data
    } else {
      newData = newData.concat(res.data)
    }

    // 设置数据
    this.setData({
      topMVs: newData,
      hasMore: res.hasMore
    })
    // 隐藏动画+停止加载
    wx.hideNavigationBarLoading()
    if (offset === 0) {
      wx.stopPullDownRefresh()
    }
  },

  // 封装点击事件处理的方法
  handleVideoItemClick(event) {
    // 获取到自定义属性 data中的id
    const id = event.currentTarget.dataset.item.id

    // 页面跳转
    wx.navigateTo({
      url: '/packageDetail/pages/detail-video/index?id=' + id,
    })
  },
})